Hello! This is Marigold Shaders - a ground-up visual redesign built on top of the
Mellow Shaders codebase by TheCMK. Mellow is MIT licensed (see LICENSE), and this
file is a lightly-updated copy of the original author's own dev notes. Big thanks
to TheCMK for building something clean enough to fork from.

If you want to edit this further, you should read the license first.

THE FOLLOWING DOES NOT GUARANTEE LEGAL COMPLIANCE: 
In short, you can redistribute & modify this shader with the condition that you keep the original license & copyright notice (so just keep the whole LICENSE file intact, and add your own license on top of what's already there). 
Per Mellow's own author: please don't reuse the "Mellow" name or Mellow's assets (screenshots, logo) for your own project. That's exactly why this fork is branded separately as Marigold instead of, say, "Mellow+".

This file contains information about how this shader is structured. Marigold keeps
Mellow's architecture as-is - almost everything changed lives in lib/colors.glsl,
lib/settings.glsl, lib/tonemap.glsl + lib/tonemap_operators.glsl, global/sky.glsl,
global/fog.glsl, global/water.glsl, global/lighting.glsl, global/shadows.glsl, and a
handful of program/ files (composite8.fsh, gbuffers_water.fsh, gbuffers_basic.fsh).

The "program" subdirectory contains files that are shared across all 3 minecraft dimensions. 
All the files in the world-1, world0 and world1 folders do is include their program/ counterpart.
They also have a #define DIMENSION_whatever directive. This way, if you want something to happen in the overworld only, you can check if DIMENSION_OVERWORLD is defined. 

Most of the lighting is done in gbuffers using the "/global/lighting.glsl" file. 
Composite passes handle post-processing, sky rendering, fog and clouds. You can find information about what each pass does inside the file itself.

All used uniforms are already defined in "/lib/all_the_uniforms.glsl". Since they are named with the "camelCase" convention, they do not conflict with functions (named with "snake_case") or variables/structs ("PascalCase").
Files in the lib/ directory are usually short functions or definitions that are useful for many things. They are included at the beginning of every file to ease development.
Files in the global/ directory are used for specific effects, or groups of similar effects. They are only included when needed.

Buffer usage (might not always be up to date):
colortex0: main buffer
colortex1: bloom
colortex2: SMAA main
colortex3: SMAA area & Blocky cloud texture
gaux1: Reflections & TAA
colortex5: Quarter-res, half precision depth (deferred) + SMAA search (composite)
colortex6: Cloud noise texture